Enterprise software applications are typically complex and may consist of several abstraction layers and many different frameworks. An abstraction layer is a way of presenting a complex functionality by hiding implementations details. A software framework is another abstraction, which is a software platform used to develop applications. An advanced generation of software applications may utilize open source solutions with various levels of security. An open source solution is computer software that is available with source code. The source code and copyright are provided under a license that permits users to study, change, improve, and eventually distribute the software. However, often the security aspect is neglected, which causes unauthorized accesses or other performance problems such as error situations and application crashes. Tools for detecting potential security and performance vulnerabilities have become a crucial part in testing software applications.
Brute force algorithm is a general problem-solving technique, which includes identifying and systematically checking all possible candidates for solving a problem. Using a brute force algorithm to discover security and performance vulnerabilities of software applications is practically useless since the amount of time needed to analyze a software application it too much, even using the newest generation of computers. There is a need to apply some logic to analyze software application behavior in an optimized way.